#ifndef _LASER_H_
#define _LASER_H_

#include "bsp_usart.h"
#include "stdlib.h"

#define LASER_RECV_SIZE 36u // 当前为固定值,36字节

typedef struct
{
    float laser_distance; // 距离,laser的返回值
}Laser_Measure_s;

/* 测距仪实例 */
typedef struct
{
    USARTInstance* laser_usart_instance; // 测距仪usart实例
    Laser_Measure_s laser_measure; // 测距仪测量值
}LaserInstance;

/* 测距仪初始化配置 */
typedef struct
{
    USART_Init_Config_s usart_config;
} Laser_Init_Config_s;

/**
 * @brief 初始化测距仪
 * 
 * @param laser_config 测距仪初始化配置
 * @return LaserInstance* 测距仪实例指针
 */
LaserInstance *LaserInit(Laser_Init_Config_s *laser_config);

#endif // !_LASER_H_